# @Time : 2022/6/21 14:23
# @Author : zhangzhihui
# @Email : mrzhangzh@gmail.com
import json
import re

from django import template
# 下面代码会直接使用register
from finance.models import QuickAuthorizationApplicationCategory
from administrative.models import Company

register = template.Library()


@register.filter
def state_display(value, value2):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    return value2[value]

@register.filter
def str_to_int(values):
    """
    value: 原始字符串，该装饰器未字符串转数字
    """
    print(int(values))
    return int(values)

@register.filter
def deal_audit(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    values = [value.real_name for value in values]
    str_values = ', '.join(values)
    return str_values

@register.filter
def data_audit(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    str_values = values.split(' ')[0]
    return str_values

@register.filter
def Participants(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    if type(json.loads(values)[0]) is list:
        str_values = ','.join([i for i in json.loads(values)[0] if i.strip()])
    else:
        str_values = json.loads(values)[0]
    return str_values

@register.filter
def Department(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    str_values = ', '.join(re.findall('(.*?)\(', values, re.S))
    return str_values

@register.filter
def deal_users(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    values = [value.real_name + '(' + value.job_number + ')' for value in values]
    # values = [value.real_name(value.job_number) for value in values]
    str_values = ', '.join(values)
    return str_values

@register.filter
def deal_users1(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    # values = [value.real_name + '(' + value.job_number + ')' for value in values]
    values = [value.real_name for value in values]
    str_values = ', '.join(values)
    return str_values

@register.filter
def deal_company(values):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """
    values = [value.name + '(' + str(value.id) + ')' for value in values]
    str_values = ', '.join(values)
    return str_values

@register.filter
def audit_info(value, value2):
    """
    value: 是必须的参数  是模板过滤器中|前面的值
    value2: 是模板过滤器中 : 后面的值
    """

    return value[value2]


@register.filter()
def add_quotes(value: str):
    """ Add double quotes to a string value """
    return f'"{value}"'

@register.filter()
def search_model(values):
    """ Add double quotes to a string value """
    obj = QuickAuthorizationApplicationCategory.objects.filter(quick=values, category=json.loads(values.detail_json)[0]["neirong"][0]["neirong"]).first()
    return str(obj.level)

@register.filter()
def search_company(values):
    if values:
        if int(values) == 1001:
            company_name = "医德医风评选一组"
        elif int(values) == 1002:
            company_name = "医德医风评选二组"
        elif int(values) == 1003:
            company_name = "医德医风评选三组"
        elif int(values) == 1004:
            company_name = "医德医风评选四组"
        else:
            company_name = Company.objects.get(id=int(values)).name
    else:
        company_name = ""
    return company_name